package com.ease.framework.workbench.spi {

	import com.ease.util.collections.Map;

	import mx.collections.ArrayCollection;

	public interface IValueRepository extends Map
	{
		/**
		 * append a sub repository with the certain id; if exsits, return
		 *
		 * @param id
		 * @return the sub repository already exsits, or a new created repository
		 */
		function createSubRepository(id:String):IValueRepository;

		/**
		 * get a sub repository, if no exists, create.
		 *
		 * @param id  sub repository ID
		 * @return
		 */
		function getSubRepository(id:String):IValueRepository;

		/**
		 * get the parent repository.
		 *
		 * @return
		 */
		function getParentRepository():IValueRepository;

		/**
		 * get all sub repositories
		 *
		 * @return
		 */
		function getSubRepositories():Array;
	}
}